package com.design03_behavioral.pattern19_visitor.example01;

/**
 * @ClassName 访问者接口-根据入参不同调用对应的重载方法
 * 收银员就类似于访问者,访问用户选择的商品,我们假设根据生产日期进行打
 * 折,过期商品不能够出售. 注意这种计价策略不适用于酒类,作为收银员要对不
 * 同商品应用不同的计价方法.
 * @Description TODO
 * @Author 22963
 * @DATE 2023/9/10 11:00
 */
public interface Visitor {

    /*example01包下的*/
    void visit(Candy candy); //糖果重载方法

    void visit(Wine wine); //酒类重载方法

    void visit(Fruit fruit); //水果重载方法


    /*example02包下的*/
    void visit(com.design03_behavioral.pattern19_visitor.example02.Candy candy);
    
    void visit(com.design03_behavioral.pattern19_visitor.example02.Wine wine);

    void visit(com.design03_behavioral.pattern19_visitor.example02.Fruit fruit);
}
